正式開始第一天就來暖身一下吧!伏地挺身30下預備,今天要介紹的咒語是Math.abs()
,我叫ABS跟我唸一遍
咒語是這麼念的:寐偲,阿柏梭魯。
至於為什麼被稱為數學的防鎖死系統呢?沒有,沒有人這麼稱,之後也不會有。
abs
是從絕對的英文absolute縮寫而來的,用來求一個數的絕對值。
絕對值的概念相信大家都很熟悉~回想一下剛上國中的數學,大家記得一年級的第一章在說什麼嗎?沒錯!就是「數與數線」,x
的絕對值可以理解成x
到原點的「距離」,因為是距離,所以一定不可能是負數,結果一定會是非負數(零或是正數)!
講完絕對值就來看看這個方法怎麼使用吧:
Math.abs(x)
放入一個數字型別
它會回傳傳入之引數的x
的絕對值,如果x
為負數或-0
,將會回傳相反數-x
,否則他將回傳x
本身,因此這個方法永遠會回傳0
或是正數,也就是非負數。
Math.abs()
方法將觸發強制轉型成數值,不能強制轉成數值的就轉成NaN
讓Math.abs()
回傳NaN
。
就這?讓我們來看看規範~
這個函式將會回傳x
的絕對值,結果會跟原本x
的值一樣但會加上正號。
當呼叫函式時會執行以下步驟:
n
且值會是ToNumber(x)
的結果n
是NaN
那就回傳NaN
n
是浮點數-0
,回傳浮點數+0
n
是負無限大的浮點數,回傳正無限大的浮點數n
是小於浮點數-0
,回傳-n
n
看起來好像沒什麼特別,恩?你問說ToNumber(x)
是什麼?
「關於這個,我們以後會專門做一期視頻給大家講解。」
如果絕對值中只有一個數,我們就可以理解為這個數到原點的距離,那如果絕對值中是兩個數相減|a - b|
或|b - a|
,那我們就能理解成 a 到 b 的距離。
所以絕對值的各種應用不外乎就是計算距離、判斷正數負數或零、限制誤差的範圍等等...
最後就針對「限制誤差範圍」這點來做個結尾,結束漫長的一天吧:
假設今天有很多新籃球準備賣出去,但他的重量必須落在600g~650g之間(625g±25g)才能夠上架,我們可以利用絕對值來過濾出落在目標區間的項目:
const basketballWeights = [600, 624, 651, 599, 634, 645, 612];
const standardWeight = 625;
const allowedError = 25;
function getDifference(a, b) {
return Math.abs(a - b);
}
const validWeights = basketballWeights.filter(basketballWeight => {
return getDifference(standardWeight, basketballWeight) <= allowedError;
})
console.log(validWeights); //[600, 624, 634, 645, 612]
定義getDifference
來獲取誤差值,然後利用array.prototype.filter
來過濾出誤差小於25
的項目,這些籃球就可以開賣啦~
所以這些籃球品質不一想取他的誤差值的時候怎麼辦呢?
關於Math.abs()
的應用如果各位有其他想法歡迎一起來討論!
就這樣。明天見!